// src/api/overtimeApi.js
import axios from 'axios';

// 创建 axios 实例，配置基础 URL 和超时时间
const api = axios.create({
    baseURL: 'http://localhost:8082', // 你的 Spring Boot 后端地址
    timeout: 5000, // 请求超时时间（毫秒）
});

/**
 * 获取加班申请列表
 * @param {Object} params - 查询参数，包含员工ID、开始时间、结束时间、状态等
 * @returns {Promise<Result<OverTime>>} - 返回加班申请数据的 Result 对象
 */
export const getOverTimeList = async (params) => {
    try {
        console.log(params)
        const response = await api.get(`/overtime/list/employ`, { params });
        console.log(response);
        return response.data;
    } catch (error) {
        if (error.response) {
            return error.response.data;
        } else {
            return {
                code: 500,
                message: '获取加班申请列表失败',
                data: null,
            };
        }
    }
};



/**
 * 保存加班申请
 * @param {Object} data - 加班申请数据
 * @returns {Promise<Result<OverTime>>} - 返回保存结果的 Result 对象
 */
export const saveOverTimeApply = async (data) => {
    try {
        console.log(data)
        const response = await api.post(`/overtime/apply/save`, data);
        return response.data;
    } catch (error) {
        if (error.response) {
            return error.response.data;
        } else {
            return {
                code: 500,
                message: '保存加班申请失败',
                data: null,
            };
        }
    }
};

/**
 * 提交加班申请
 * @param {Object} data - 加班申请数据
 * @returns {Promise<Result<OverTime>>} - 返回提交结果的 Result 对象
 */
export const submitOverTimeApply = async (data) => {
    try {
        const response = await api.post(`/overtime/apply/add`, data);
        return response.data;
    } catch (error) {
        if (error.response) {
            return error.response.data;
        } else {
            return {
                code: 500,
                message: '提交加班申请失败',
                data: null,
            };
        }
    }
};

/**
 * 删除加班申请
 * @param {number} id - 加班申请ID
 * @returns {Promise<Result<boolean>>} - 返回删除结果的 Result 对象
 */
export const deleteOverTimeApply = async (id) => {
    try {
        const response = await api.delete(`/overtime/apply/delete/${id}`);
        return response.data;
    } catch (error) {
        if (error.response) {
            return error.response.data;
        } else {
            return {
                code: 500,
                message: '删除加班申请失败',
                data: null,
            };
        }
    }
};


/**
 * 更新加班申请状态（同意/拒绝）
 * @param {Object} data - 加班申请数据，包含id和state
 * @returns {Promise<Result<OverTime>>} - 返回更新结果的 Result 对象
 */
export const updateOverTimeApply = async (data) => {
    try {
        console.log(data)
        const response = await api.patch(`/overtime/apply/allowQuick`, data);
        return response.data;
    } catch (error) {
        if (error.response) {
            return error.response.data;
        } else {
            return {
                code: 500,
                message: '更新加班申请状态失败',
                data: null,
            };
        }
    }
};